盒子
盒子
文章目录
  1. su 与 sudo 的区别
  2. su 的使用
  3. sudo 的使用
  4. 参考文献

su和sudo

su 与 sudo 的区别

这两个操作并不是单纯的切换成 root 用户,而是能够切换成任何一个其他用户。

  • su(Switch User): 切换用户的意思,他可以切换成任何其他用户,切换时需要输入目标用户(target user)的密码,切换成功之后会开启一个新的 shell 实例(可以当作是新开了一个命令行窗口),因此你如果要退回到原来的用户,你需要 exit 而不是 logout(类似于关闭当前的命令行窗口)。
  • sudo: 官方定义是execute a command as another user,也就是说并不是要真正登录成另一个用户,而是以另一个用户的身份去执行命令,执行该命令之后需要输入当前用户的密码。前面说到 sudo 是请求授权,那么是不是要授权该用户是在 /etc/sudoers 中设置,如果要设置该文件,只需要使用 visudo 即可。比如:root ALL=(ALL) ALL 表示 root 拥有全部权限。

打个比方,假设有两个用户 A 和 B,用户 B 输入 su - A 意味着是让用户 A 自己做事情,因此需要输入用户 A 的密码;sudo -i -u A 意味着用户 A 已经同意用户 B 以 A 的名义做事情,因此这条指令需要输入用户 B 的密码只是为了确认是用户 B 输入了这条命令即可。
因此 sudosu 最大的区别在于前者是借着某人的名义做事(do sth as sb),而后者是真的人在做事(become sb)。

最后给张有趣配图说明 sudo 的作用:

su 的使用

  • su: 登录 root 用户
  • su usr1: 登录 usr1 用户

sudo 的使用

  • sudo -i: 以 root 用户的名义登录
  • sudo -i -u usr1:以 usr1 用户的名义登录

参考文献

  1. http://my.oschina.net/shuay/blog/53567
  2. http://os.51cto.com/art/201307/404879.htm
  3. http://blog.csdn.net/u010749410/article/details/12711031
  4. http://www.aminglinux.com/bbs/thread-6899-1-1.html
支持一下
扫一扫,支持xiazdong